﻿/**
 * jQuery EasyUI 1.3.2
 *
 * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved.
 *
 * Licensed under the GPL or commercial licenses
 * To use it on other terms please contact us: jeasyui@gmail.com
 * http://www.gnu.org/licenses/gpl.txt
 * http://www.jeasyui.com/license_commercial.php
 *
 */
(function ($) {
    function _1(_2, _3) {
        _3 = _3 || {};
        var _4 = {};
        if (_3.onSubmit) {
            if (_3.onSubmit.call(_2, _4) == false) {
                return;
            }
        }
        var _5 = $(_2);
        if (_3.url) {
            _5.attr("action", _3.url);
        }
        var _6 = "easyui_frame_" + (new Date().getTime());
        var _7 = $("<iframe id=" + _6 + " name=" + _6 + "></iframe>").attr("src", window.ActiveXObject ? "javascript:false" : "about:blank").css({
            position: "absolute",
            top: -1000,
            left: -1000
        });
        var t = _5.attr("target"), a = _5.attr("action");
        _5.attr("target", _6);
        var _8 = $();
        try {
            _7.appendTo("body");
            _7.bind("load", cb);
            for (var n in _4) {
                var f = $("<input type=\"hidden\" name=\"" + n + "\">").val(_4[n]).appendTo(_5);
                _8 = _8.add(f);
            }
            _5[0].submit();
        }
        finally {
            _5.attr("action", a);
            t ? _5.attr("target", t) : _5.removeAttr("target");
            _8.remove();
        }
        var _9 = 10;

        function cb() {
            _7.unbind();
            var _a = $("#" + _6).contents().find("body");
            var _b = _a.html();
            if (_b == "") {
                if (--_9) {
                    setTimeout(cb, 100);
                    return;
                }
                return;
            }
            var ta = _a.find(">textarea");
            if (ta.length) {
                _b = ta.val();
            } else {
                var _c = _a.find(">pre");
                if (_c.length) {
                    _b = _c.html();
                }
            }
            if (_3.success) {
                _3.success(_b);
            }
            setTimeout(function () {
                _7.unbind();
                _7.remove();
            }, 100);
        };
    };

    function _d(_e, _f) {
        if (!$.data(_e, "form")) {
            $.data(_e, "form", {options: $.extend({}, $.fn.form.defaults)});
        }
        var _10 = $.data(_e, "form").options;
        if (typeof _f == "string") {
            var _11 = {};
            if (_10.onBeforeLoad.call(_e, _11) == false) {
                return;
            }
            $.ajax({
                url: _f, data: _11, dataType: "json", success: function (_12) {
                    _13(_12);
                }, error: function () {
                    _10.onLoadError.apply(_e, arguments);
                }
            });
        } else {
            _13(_f);
        }

        function _13(_14) {
            var _15 = $(_e);
            for (var _16 in _14) {
                var val = _14[_16];
                var rr = _17(_16, val);
                if (!rr.length) {
                    var f = _15.find("input[numberboxName=\"" + _16 + "\"]");
                    if (f.length) {
                        f.numberbox("setValue", val);
                    } else {
                        $("input[name=\"" + _16 + "\"]", _15).val(val);
                        $("textarea[name=\"" + _16 + "\"]", _15).val(val);
                        $("select[name=\"" + _16 + "\"]", _15).val(val);
                    }
                }
                _18(_16, val);
            }
            _10.onLoadSuccess.call(_e, _14);
            _21(_e);
        };

        function _17(_19, val) {
            var _1a = $(_e);
            var rr = $("input[name=\"" + _19 + "\"][type=radio], input[name=\"" + _19 + "\"][type=checkbox]", _1a);
            $.fn.prop ? rr.prop("checked", false) : rr.attr("checked", false);
            rr.each(function () {
                var f = $(this);
                if (f.val() == String(val)) {
                    $.fn.prop ? f.prop("checked", true) : f.attr("checked", true);
                }
            });
            return rr;
        };

        function _18(_1b, val) {
            var _1c = $(_e);
            var cc = ["combobox", "combotree", "combogrid", "datetimebox", "datebox", "combo"];
            var c = _1c.find("[comboName=\"" + _1b + "\"]");
            if (c.length) {
                for (var i = 0; i < cc.length; i++) {
                    var _1d = cc[i];
                    if (c.hasClass(_1d + "-f")) {
                        if (c[_1d]("options").multiple) {
                            c[_1d]("setValues", val);
                        } else {
                            c[_1d]("setValue", val);
                        }
                        return;
                    }
                }
            }
        };
    };

    function _1e(_1f) {
        $("input,select,textarea", _1f).each(function () {
            var t = this.type, tag = this.tagName.toLowerCase();
            if (t == "text" || t == "hidden" || t == "password" || tag == "textarea") {
                this.value = "";
            } else {
                if (t == "file") {
                    var _20 = $(this);
                    _20.after(_20.clone().val(""));
                    _20.remove();
                } else {
                    if (t == "checkbox" || t == "radio") {
                        this.checked = false;
                    } else {
                        if (tag == "select") {
                            this.selectedIndex = -1;
                        }
                    }
                }
            }
        });
        if ($.fn.combo) {
            $(".combo-f", _1f).combo("clear");
        }
        if ($.fn.combobox) {
            $(".combobox-f", _1f).combobox("clear");
        }
        if ($.fn.combotree) {
            $(".combotree-f", _1f).combotree("clear");
        }
        if ($.fn.combogrid) {
            $(".combogrid-f", _1f).combogrid("clear");
        }
        _21(_1f);
    };

    function _22(_23) {
        _23.reset();
        var t = $(_23);
        if ($.fn.combo) {
            t.find(".combo-f").combo("reset");
        }
        if ($.fn.combobox) {
            t.find(".combobox-f").combobox("reset");
        }
        if ($.fn.combotree) {
            t.find(".combotree-f").combotree("reset");
        }
        if ($.fn.combogrid) {
            t.find(".combogrid-f").combogrid("reset");
        }
        if ($.fn.spinner) {
            t.find(".spinner-f").spinner("reset");
        }
        if ($.fn.timespinner) {
            t.find(".timespinner-f").timespinner("reset");
        }
        if ($.fn.numberbox) {
            t.find(".numberbox-f").numberbox("reset");
        }
        if ($.fn.numberspinner) {
            t.find(".numberspinner-f").numberspinner("reset");
        }
        _21(_23);
    };

    function _24(_25) {
        var _26 = $.data(_25, "form").options;
        var _27 = $(_25);
        _27.unbind(".form").bind("submit.form", function () {
            setTimeout(function () {
                _1(_25, _26);
            }, 0);
            return false;
        });
    };

    function _21(_28) {
        if ($.fn.validatebox) {
            var t = $(_28);
            t.find(".validatebox-text:not(:disabled)").validatebox("validate");
            var _29 = t.find(".validatebox-invalid");
            _29.filter(":not(:disabled):first").focus();
            return _29.length == 0;
        }
        return true;
    };
    $.fn.form = function (_2a, _2b) {
        if (typeof _2a == "string") {
            return $.fn.form.methods[_2a](this, _2b);
        }
        _2a = _2a || {};
        return this.each(function () {
            if (!$.data(this, "form")) {
                $.data(this, "form", {options: $.extend({}, $.fn.form.defaults, _2a)});
            }
            _24(this);
        });
    };
    $.fn.form.methods = {
        submit: function (jq, _2c) {
            return jq.each(function () {
                _1(this, $.extend({}, $.fn.form.defaults, _2c || {}));
            });
        }, load: function (jq, _2d) {
            return jq.each(function () {
                _d(this, _2d);
            });
        }, clear: function (jq) {
            return jq.each(function () {
                _1e(this);
            });
        }, reset: function (jq) {
            return jq.each(function () {
                _22(this);
            });
        }, validate: function (jq) {
            return _21(jq[0]);
        }
    };
    $.fn.form.defaults = {
        url: null, onSubmit: function (_2e) {
            return $(this).form("validate");
        }, success: function (_2f) {
        }, onBeforeLoad: function (_30) {
        }, onLoadSuccess: function (_31) {
        }, onLoadError: function () {
        }
    };
})(jQuery);

